const { DataTypes, Model, Deferrable } = require("sequelize");
const sequelize = require("../../sequelize");
/**
 * 优惠劵模型
 */
class Coupon extends Model {
    static async addCoupon(data){
        return await this.create(data)
    }
    static async updateCoupon(data,id){
        return await this.update(data,{
            where:{
                id:id
            }
        })
    }
    static async CouponList(page,limit){
        let row=await this.findAll({
            order:[['order','DESC']],
            limit:limit,
            offset:limit*page-limit
        })
        let json={}
        json["list"]=[]
        row.forEach(value=>{
            json.list.push(value.toJSON())
        })
        json["totalCount"]=await this.count()
        return json
    }
    static async delete(id){
        return await this.destroy({
            where:{
                id:id
            }
        })
    }
};
Coupon.init({
    id:{
        type:DataTypes.INTEGER,
        primaryKey: true,
        autoIncrement: true
    },
    name:{
        type:DataTypes.STRING
    },
    type:{
        type:DataTypes.TINYINT,
        defaultValue:0
    },
    value:{
        type:DataTypes.DECIMAL(10,2)
    },
    total:{
        type:DataTypes.INTEGER
    },
    used:{
        type:DataTypes.INTEGER
    },
    min_price:{
        type:DataTypes.DECIMAL(10,2)
    },
    start_time:{
        type:DataTypes.DATE
    },
    end_time:{
        type:DataTypes.DATE
    },
    status:{
        type:DataTypes.TINYINT,
        defaultValue:1
    },
    order:{
        type:DataTypes.INTEGER
    },
    desc:{
        type:DataTypes.STRING
    }
}, {
    sequelize,
    modelName: "Coupon",
    tableName: "coupon",
    createdAt:"create_time",
    updatedAt:"update_time",
})
module.exports = Coupon